灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:5943回复:1

破解UltraISO v9.5.2

楼主#
更多 发布于:2011-12-09 06:08
UltraISO软碟通是一款光盘映像ISO文件编辑制作工具,它可以图形化地从光盘、硬盘制作和编辑ISO文件。UltraISO可以做到:1.从CD-ROM制作光盘的映像文件。2.将硬盘、光盘、网络磁盘文件制作成ISO文件。3.从ISO文件中提取文件或文件夹。4.编辑各种ISO文件(如Nero Burning ROM、Easy CD Creator、Clone CD 制作的光盘映像文件)。5.制作可启动ISO文件。+)新ISO文件处理内核,更稳定、高效+)超强还原功能,可以准确还原被编辑文件,确保ISO文件不被损坏+)可制作1.2M/1.44M/2.88M软盘仿真启动光盘+)完整的帮助文件(CHM格式) +)实现重新打开文件列表功能+)支持Windows 2000下制作光盘映像文件*)修正刻盘后有时出现目录不能打开错误。
软件下载地址:http://www.crsky.com/soft/1134.html
用PEID查壳:ASPack 2.12 -> Alexey Solodovnikov,很简单的一个壳,我就不多说了!
安装之后载入OD
 
00C0E001 >  60              pushad
00C0E002    E8 03000000     call UltraISO.00C0E00A
00C0E007  - E9 EB045D45     jmp 461DE4F7
00C0E00C    55              push ebp
00C0E00D    C3              retn
00C0E00E    E8 01000000     call UltraISO.00C0E014
00C0E013    EB 5D           jmp short UltraISO.00C0E072
 
脱壳之后
 
00401620 > $ /EB 10         jmp short dumped.00401632
00401622   . |66:623A       bound di,dword ptr ds:[edx]
00401625   . |43            inc ebx
00401626   . |2B2B          sub ebp,dword ptr ds:[ebx]
00401628   . |48            dec eax
00401629   . |4F            dec edi
0040162A   . |4F            dec edi
0040162B   . |4B            dec ebx
0040162C   . |90            nop
0040162D   .-|E9 98006400   jmp dumped.00A416CA
00401632   > A1 8B006400   mov eax,dword ptr ds:[64008B]
00401637   .  C1E0 02       shl eax,2
0040163A   .  A3 8F006400   mov dword ptr ds:[64008F],eax
0040163F   .  52            push edx
00401640   .  6A 00         push 0                                   ; /pModule = NULL
00401642   .  E8 5BD02300   call <jmp.;kernel32.GetModuleHandleA>    ; GetModuleHandleA
 
输入用户名和注册码,并且注册码要是16!
附件62386
点击确定,注册码已经录入,请重新运行程序,不用多说,软件是重启验证的!
既然是重启验证,那么它根本会打软件保存在电脑里面,要么是文件,要么是注册表!这款软件保存在注册表里面!用这个款(Regshot_2.0.1.66)软件监控一个注册表,看它都做了些什么
附件62387
 
附件62388
 
就是我们的用户名,存放的注册码,看起来很像MD5
 
打开系统注册表,运行中输入“regedit"查找“1234567890123456”是查找不到,因为我们输入的假码通过一系列运算已经成"f5ace2b8a891ffd9fcaee0beae93fdd6"UserName里面是用户名,Registration是注册码,在这里UserName是关键,下面我们要用到。
 
BC++和DELPHI都可以用,那咱们就用DEDE载入脱壳后的文件!点过程,里面有一个TfrmRegister,点击它,出现如图所示
附件62427
00481EC0 这个地址就是我要查找的按钮事件
 
既然是注册表重启验证的,那我们就下bp RegQueryValueExA断点F9几次之后
0012F6C4   00472CCC  /CALL 到RegQueryValueExA 来自dumped.00472CC7
0012F6C8   000000CC  |hKey = CC
0012F6CC   0066E5B6  |ValueName = "UserName"
0012F6D0   00000000  |Reserved = NULL
0012F6D4   0012FAF0  |pValueType = 0012FAF0
0012F6D8   0012F7E4  |Buffer = 0012F7E4
0012F6DC   0012FAEC  pBufSize = 0012FAEC
0012F6E0   505C3A43
 
此时正是返回程序领空的最佳时机,Alt+F9返回程序领空。
00472CCC  |.  85C0          test eax,eax
接下来F8单步一直向下
00472F34  |.  68 94C48200   push dumped.0082C494                     ;  ASCII "hello"
00472F39  |.  E8 BEA31B00   call dumped.0062D2FC
00472F3E  |.  83C4 08       add esp,8
00472F41  |.  FF75 0C       push dword ptr ss:[ebp+C]
00472F44  |.  68 98C58200   push dumped.0082C598                     ;  ASCII "1234567890123456"
00472F49  |.  E8 AEA31B00   call dumped.0062D2FC
00472F4E  |.  83C4 08       add esp,8
00472F51  |.  B8 01000000   mov eax,1
00472F56  |>  8BE5          mov esp,ebp
00472F58  |.  5D            pop ebp
00472F59  .  C3            retn
 
F2在00472F59下断,SHIFT+F9运行,F8单步继续。
 
00403344   . /74 0D         je short dumped.00403353
00403346   . |FF35 54E46700 push dword ptr ds:[67E454]               ; /ExitCode = FFFFFFFF
0040334C   . |E8 5BB22300   call <jmp.;kernel32.ExitProcess>         ; ExitProcess
00403351   . |EB 07         jmp short dumped.0040335A
00403353   > 33C0          xor eax,eax
 
这里要跳转,不然程序就OVER了!
00403362   .  E8 75C01E00   call dumped.005EF3DC                     ;  激活注册对话框
 
00403027    8B0D 94B76800   mov ecx,dword ptr ds:[68B794]            ;
0040302D    A1 C0006400     mov eax,dword ptr ds:[6400C0]       ;这两个数值有点奇怪,我们后面完美破解所需要的
00403032    3BC8            cmp ecx,eax
00403034    74 19           je short dumped.0040304F                 ; 关键跳转
00403036    8B15 08BC6C00   mov edx,dword ptr ds:[6CBC08]            ; dumped.00B4ACE8
 
                                                                     ; 关键跳转,上面的几个函数读取了我们的用户名和假码,通过某种判断,如果注册成功就跳,但是没有跳,所以我要让它跳转
 
 
 
 
关键点一:
00401DAB  |.  E8 A8B62200   |call dumped.0062D458
00401DB0  |.  83C4 0C       |add esp,0C
00401DB3  |.  8945 BC       |mov dword ptr ss:[ebp-44],eax
00401DB6  |.  8B45 BC       |mov eax,dword ptr ss:[ebp-44]
00401DB9  |.  85C0          |test eax,eax
00401DBB      7E 09         jle short dumped.00401DC6                ;  这里要跳转
00401DBD  |.  8B55 D8       |mov edx,dword ptr ss:[ebp-28]
00401DC0  |.  4A            |dec edx
 
关键点二:
00401DF3  |.  A1 94B76800   |mov eax,dword ptr ds:[68B794]
00401DF8  |.  3BC8          |cmp ecx,eax
00401DFA      75 2E         jnz short dumped.00401E2A                ;  这里是一个关键CALL,不能跳
 
 
mov edx.dword ptr ds:[6400C0]
mov dword ptr ds:[68B794],edx
cmp ecx,eax
jnz   xxxx
 不等于时转移. 所以我们要让这个两个里面的内容相等,这里是用来限制ISO软件的大小,
 
1.
00401DBB  |. /7E 09         |jle short dumped.00401DC6               ;  这里要跳转,修改为JMP
00401DBD  |. |8B55 D8       |mov edx,dword ptr ss:[ebp-28]
00401DC0  |. |4A            |dec edx
00401DC1  |. |8955 DC       |mov dword ptr ss:[ebp-24],edx
00401DC4  |. |EB 56         |jmp short dumped.00401E1C
00401DC6  |> 8B4D BC       |mov ecx,dword ptr ss:[ebp-44]
00401DC9  |.  85C9          |test ecx,ecx
00401DCB  |.  7D 09         |jge short dumped.00401DD6
00401DCD  |.  8B45 D8       |mov eax,dword ptr ss:[ebp-28]
00401DD0  |.  40            |inc eax
00401DD1  |.  8945 C8       |mov dword ptr ss:[ebp-38],eax
00401DD4  |.  EB 46         |jmp short dumped.00401E1C
00401DD6  |>  FF0D 94B76800 |dec dword ptr ds:[68B794]
00401DDC  |.  FF0D 94B76800 |dec dword ptr ds:[68B794]
00401DE2  |.  8B55 D0       |mov edx,dword ptr ss:[ebp-30]
00401DE5  |.  83C2 46       |add edx,46
00401DE8  |.  8915 489F6400 |mov dword ptr ds:[649F48],edx
00401DEE  |.  8B4D D0       |mov ecx,dword ptr ss:[ebp-30]
00401DF1  |.  F7D1          |not ecx
00401DF3  |.  A1 94B76800   |mov eax,dword ptr ds:[68B794]
00401DF8  |.  3BC8          |cmp ecx,eax
00401DFA      74 2E         je short dumped.00401E2A                 ;  修改为JE
00401DFC  |.  8B15 C0006400 |mov edx,dword ptr ds:[6400C0]
00401E02  |.  8915 94B76800 |mov dword ptr ds:[68B794],edx
 
2.
004453B7   . /7E 09         jle short dumped.004453C2                ;  修改为JMP
004453B9   . |8B55 D8       mov edx,dword ptr ss:[ebp-28]
004453BC   . |4A            dec edx
004453BD   . |8955 DC       mov dword ptr ss:[ebp-24],edx
004453C0   . |EB 56         jmp short dumped.00445418
004453C2   > 8B4D BC       mov ecx,dword ptr ss:[ebp-44]
004453C5   .  85C9          test ecx,ecx
004453C7   .  7D 09         jge short dumped.004453D2
004453C9   .  8B45 D8       mov eax,dword ptr ss:[ebp-28]
004453CC   .  40            inc eax
004453CD   .  8945 C8       mov dword ptr ss:[ebp-38],eax
004453D0   .  EB 46         jmp short dumped.00445418
004453D2   >  FF0D 94B76800 dec dword ptr ds:[68B794]
004453D8   .  FF0D 94B76800 dec dword ptr ds:[68B794]
004453DE   .  8B55 D0       mov edx,dword ptr ss:[ebp-30]
004453E1   .  83C2 46       add edx,46
004453E4   .  8915 248E6600 mov dword ptr ds:[668E24],edx
004453EA   .  8B4D D0       mov ecx,dword ptr ss:[ebp-30]
004453ED   .  F7D1          not ecx
004453EF   .  A1 94B76800   mov eax,dword ptr ds:[68B794]
004453F4   .  3BC8          cmp ecx,eax
004453F6   .  75 2E         jnz short dumped.00445426                ;  修改为JZ
004453F8   .  8B15 C0006400 mov edx,dword ptr ds:[6400C0]
004453FE   .  8915 94B76800 mov dword ptr ds:[68B794],edx
 
3.
004AEEE8     /7E 09         jle short dumped.004AEEF3                ;  修改为JMP
004AEEEA   . |8B55 D8       mov edx,dword ptr ss:[ebp-28]
004AEEED   . |4A            dec edx
004AEEEE   . |8955 DC       mov dword ptr ss:[ebp-24],edx
004AEEF1   . |EB 56         jmp short dumped.004AEF49
004AEEF3   > 8B4D BC       mov ecx,dword ptr ss:[ebp-44]
004AEEF6   .  85C9          test ecx,ecx
004AEEF8   .  7D 09         jge short dumped.004AEF03
004AEEFA   .  8B45 D8       mov eax,dword ptr ss:[ebp-28]
004AEEFD   .  40            inc eax
004AEEFE   .  8945 C8       mov dword ptr ss:[ebp-38],eax
004AEF01   .  EB 46         jmp short dumped.004AEF49
004AEF03   >  FF0D 94B76800 dec dword ptr ds:[68B794]
004AEF09   .  FF0D 94B76800 dec dword ptr ds:[68B794]
004AEF0F   .  8B55 D0       mov edx,dword ptr ss:[ebp-30]
004AEF12   .  83C2 46       add edx,46
004AEF15   .  8915 ECA16800 mov dword ptr ds:[68A1EC],edx
004AEF1B   .  8B4D D0       mov ecx,dword ptr ss:[ebp-30]
004AEF1E   .  F7D1          not ecx
004AEF20   .  A1 94B76800   mov eax,dword ptr ds:[68B794]
004AEF25   .  3BC8          cmp ecx,eax
004AEF27   .  75 2E         jnz short dumped.004AEF57                ;  修改为jz
 

图片:37_3710_24a58eaaa1bc289.jpg


 
此时已经算是完美破解了

喜欢0 评分0
ji_r_h
骑士
骑士
  • 注册日期2013-07-24
  • 发帖数92
  • QQ182532534
  • 火币134枚
  • 粉丝0
  • 关注0
沙发#
发布于:2015-03-23 17:16
谢谢楼主,看看

回复(0) 喜欢(0)     评分
游客

返回顶部